워드프레스 이미지 업로드 실패 해결, 서버 설정 (PHP 메모리, 파일 크기, 권한) 점검 방법
워드프레스로 열심히 글을 쓰다가 이미지를 업로드하는 순간, 빨간색 'HTTP 오류' 메시지를 마주하면 정말 막막합니다. 특히 마감 시간이 촉박할 때는 심장이 내려앉죠. 저도 3일 밤낮을 이 문제로 씨름했습니다. 해결 방법을 몰라 호스팅 업체에 전화하고 시간을 낭비했던 제 경험을 바탕으로, 가장 빠르고 확실한 해결책들을 순서대로 알려드리겠습니다.
1. 워드프레스 이미지 업로드 실패, 제가 겪었던 막막함
당시 저는 고화질 사진이 다수 포함된 여행지 포스팅을 막 완성한 상태였습니다. 50KB짜리 작은 로고 파일은 올라가는데, 수 MB짜리 메인 사진 20장이 계속 실패했습니다. 단순한 문제인 줄 알고 워드프레스 테마나 플러그인만 수없이 확인했지만 소용이 없었습니다. 결국 이 문제가 서버 설정, 특히 PHP 설정과 깊이 연관되어 있다는 사실을 깨닫고 좌절했던 경험이 있습니다.
2. 이미지 업로드 실패의 핵심 원인 3가지 진단
제 경험상 워드프레스 이미지 업로드 실패는 다음 3가지 원인 중 하나이거나 복합적인 경우가 대부분입니다.
- 폴더 권한 문제 (Permisson Denied): 미디어 파일이 저장되는 'uploads' 폴더에 워드프레스가 파일을 저장할 '쓰기 권한'이 없는 경우입니다. (가장 흔하며 쉬운 원인)
- PHP 메모리 부족 (Memory Exhausted): 특히 고화질/대용량 이미지를 처리하는 과정에서 서버의 PHP 메모리 한계에 도달해 작동이 중단되는 경우입니다.
- 최대 파일 업로드 용량 제한: 서버 설정 자체에서 업로드 가능한 개별 파일 크기를 너무 작게 (예: 2MB) 제한한 경우입니다.
3. 5분 안에 해결 가능한 '폴더 권한' 및 '캐시' 점검
가장 쉽고 빠르게 해결할 수 있는 방법부터 시도하는 것이 시간 낭비를 줄입니다. 제가 가장 먼저 시도했던 방법입니다.
3-1. 폴더 권한 (Permisson) 755로 변경
- FTP 프로그램(FileZilla, VScode 등)으로 워드프레스 서버에 접속합니다.
/wp-content/폴더 아래의uploads폴더로 이동합니다.- 해당 폴더를 우클릭하여 권한(Permission)을 755로 설정합니다. 하위 디렉토리 및 파일에도 적용하는 옵션을 선택하는 것이 안전합니다.
3-2. 캐시 및 보안 플러그인 일시 비활성화
사용 중인 캐시 플러그인(LiteSpeed Cache, WP Rocket 등)이나 보안 플러그인(Wordfence 등)이 서버와의 통신을 방해할 때가 있습니다. 잠시 해당 플러그인들을 비활성화하고 업로드를 다시 시도해 보십시오.
4. 서버 설정: PHP 메모리 및 최대 업로드 용량 조절
위의 방법으로 해결이 안 되었다면 서버 환경 설정 파일을 수정해야 합니다. 파일 수정 시 반드시 백업을 먼저 진행하시기 바랍니다.
4-1. wp-config.php 파일 수정으로 PHP 메모리 늘리기
FTP로 접속하여 루트 폴더의 wp-config.php 파일을 열고, /* That's all, stop editing! Happy blogging. */ 바로 윗줄에 다음 코드를 추가합니다. 보통 128M에서 256M으로 늘리는 것을 권장합니다.
define('WP_MEMORY_LIMIT', '256M');
4-2. php.ini 파일로 최대 업로드 용량 늘리기
루트 폴더 또는 /wp-admin/ 폴더에 php.ini 파일을 생성하거나 수정합니다. 다음 두 값을 원하는 용량(예시: 64M)으로 동일하게 조정합니다.
upload_max_filesize = 64M
post_max_size = 64M
5. 상위 폴더와 .htaccess 파일 점검으로 근본적 해결
4단계의 php.ini 설정이 서버 환경에 따라 무시될 수 있습니다. 이 경우, 강력한 설정 파일인 .htaccess를 이용해 설정을 강제 적용할 수 있습니다.
5-1. .htaccess 파일 활용
루트 폴더의 .htaccess 파일 가장 하단에 다음 코드를 추가하여 PHP 설정을 강제로 적용해 보세요.
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value memory_limit 256M
5-2. 호스팅 업체에 직접 문의
공유 호스팅을 사용한다면 `.htaccess` 파일로도 설정을 바꿀 수 없도록 막혀있을 수 있습니다. 제 경험상, 불필요한 파일 수정을 반복하는 것보다 이 단계에서 호스팅 업체의 기술 지원팀에 "PHP 메모리 및 최대 업로드 용량 상향 조정"을 요청하는 것이 가장 빠르고 확실한 해결책이었습니다.
6. 이미지 문제 해결 후 2주 뒤, 제가 얻은 3가지 교훈
저는 이 문제를 해결하고 난 뒤 약 2주 동안 워드프레스를 운영하며 다음과 같은 3가지 실질적인 변화를 체감했습니다.
- 사이트 속도의 예상치 못한 개선: PHP 메모리를 256M으로 올린 후, 이미지가 없는 페이지까지 로딩 속도가 미묘하게 빨라졌습니다. 이는 이전에는 다른 스크립트가 메모리 부족으로 간헐적 지연을 일으켰던 것입니다.
- 스트레스 레벨 급감: 이미지를 마음껏 올릴 수 있게 되자, 콘텐츠의 질에만 집중할 수 있게 되어 마감 시간 압박이 사라졌습니다.
- 에러 로그의 중요성 인지: 무작정 설정 파일을 건드리기보다 워드프레스 디버그 모드나 서버 에러 로그를 먼저 확인하는 습관을 들였습니다. 이것이 가장 근본적인 문제 진단법입니다.